CM3D2 Converter.misc_VIEW3D_MT_edit_mesh_split

 1import bpy
 2import bmesh
 3from . import common
 4from . import compat
 5
 6# メニュー等に項目追加
 7def menu_func(self, context):
 8    icon_id = common.kiss_icon()
 9    self.layout.separator()
10    self.layout.label(text="CM3D2", icon_value=icon_id)
11    self.layout.operator('mesh.split_sharp')
12
13@compat.BlRegister()
14class CNV_OT_split_sharp(bpy.types.Operator):
15    bl_idname = 'mesh.split_sharp'
16    bl_label = "Split Sharp Edges"
17    bl_description = "Split all edges marked as sharp"
18    bl_options = {'REGISTER', 'UNDO'}
19
20    @classmethod
21    def poll(cls, context):
22        ob = context.active_object
23        return ob and ob.type == 'MESH' and ob.mode == 'EDIT'
24
25    def execute(self, context):
26        ob = context.active_object
27        me = ob.data
28
29        bpy.ops.mesh.select_all(action='DESELECT')
30
31        bm = bmesh.from_edit_mesh(me)
32
33        sharp_edges = list()
34        for edge in bm.edges:
35            if not edge.smooth:
36                sharp_edges.append(edge)
37
38        changed = bmesh.ops.split_edges(bm, edges=sharp_edges)
39        for edge in changed['edges']:
40            edge.select_set(True)
41        
42        return {'FINISHED'}
@compat.BlRegister()
class CNV_OT_split_sharp(bpy_types.Operator):
14@compat.BlRegister()
15class CNV_OT_split_sharp(bpy.types.Operator):
16    bl_idname = 'mesh.split_sharp'
17    bl_label = "Split Sharp Edges"
18    bl_description = "Split all edges marked as sharp"
19    bl_options = {'REGISTER', 'UNDO'}
20
21    @classmethod
22    def poll(cls, context):
23        ob = context.active_object
24        return ob and ob.type == 'MESH' and ob.mode == 'EDIT'
25
26    def execute(self, context):
27        ob = context.active_object
28        me = ob.data
29
30        bpy.ops.mesh.select_all(action='DESELECT')
31
32        bm = bmesh.from_edit_mesh(me)
33
34        sharp_edges = list()
35        for edge in bm.edges:
36            if not edge.smooth:
37                sharp_edges.append(edge)
38
39        changed = bmesh.ops.split_edges(bm, edges=sharp_edges)
40        for edge in changed['edges']:
41            edge.select_set(True)
42        
43        return {'FINISHED'}
bl_idname = 'mesh.split_sharp'
bl_label = 'Split Sharp Edges'
bl_description = 'Split all edges marked as sharp'
bl_options = {'REGISTER', 'UNDO'}
@classmethod
def poll(cls, context):
21    @classmethod
22    def poll(cls, context):
23        ob = context.active_object
24        return ob and ob.type == 'MESH' and ob.mode == 'EDIT'
def execute(self, context):
26    def execute(self, context):
27        ob = context.active_object
28        me = ob.data
29
30        bpy.ops.mesh.select_all(action='DESELECT')
31
32        bm = bmesh.from_edit_mesh(me)
33
34        sharp_edges = list()
35        for edge in bm.edges:
36            if not edge.smooth:
37                sharp_edges.append(edge)
38
39        changed = bmesh.ops.split_edges(bm, edges=sharp_edges)
40        for edge in changed['edges']:
41            edge.select_set(True)
42        
43        return {'FINISHED'}
bl_rna = <bpy_struct, Struct("MESH_OT_split_sharp")>
Inherited Members
bpy_types.Operator
as_keywords
poll_message_set
builtins.bpy_struct
keys
values
items
get
pop
as_pointer
keyframe_insert
keyframe_delete
driver_add
driver_remove
is_property_set
property_unset
is_property_hidden
is_property_readonly
is_property_overridable_library
property_overridable_library_set
path_resolve
path_from_id
type_recast
bl_rna_get_subclass_py
bl_rna_get_subclass
id_properties_ensure
id_properties_clear
id_properties_ui
id_data